﻿using DocumentFormat.OpenXml.Lite.Xml;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace DocumentFormat.OpenXml.Lite.SpreadsheetML.Excel.WorksheetElements
{
    [XmlRoot("sheetFormatPr", Namespace = Constants.ExcelMain)]
    public class SheetFormatProperties : XmlSerializable
    {
        [Optional]
        [XmlAttribute("baseColWidth", Form = XmlSchemaForm.Qualified)]
        public Nullable<uint> BaseColumnWidth { get; set; }

        [Optional]
        [XmlAttribute("defaultColWidth", Form = XmlSchemaForm.Qualified)]
        public Nullable<double> DefaultColumnWidth { get; set; }

        [XmlAttribute("defaultRowHeight", Form = XmlSchemaForm.Qualified)]
        public double DefaultRowHeight { get; set; }

        [Optional]
        [XmlAttribute("customHeight", Form = XmlSchemaForm.Qualified)]
        public Nullable<double> CustomHeight { get; set; }

        [Optional]
        [XmlAttribute("zeroHeight", Form = XmlSchemaForm.Qualified)]
        public Nullable<double> ZeroHeight { get; set; }

        [Optional]
        [XmlAttribute("thickTop", Form = XmlSchemaForm.Qualified)]
        public Nullable<double> ThickTop { get; set; }

        [Optional]
        [XmlAttribute("thickBottom", Form = XmlSchemaForm.Qualified)]
        public Nullable<double> ThickBottom { get; set; }

        [Optional]
        [XmlAttribute("outlineLevelRow", Form = XmlSchemaForm.Qualified)]
        public Nullable<byte> OutlineLevelRow { get; set; }

        [Optional]
        [XmlAttribute("outlineLevelCol", Form = XmlSchemaForm.Qualified)]
        public Nullable<byte> OutlineLevelColumn { get; set; }

        public SheetFormatProperties() { }
    }
}
